Conversation
|
Also did you mean for this PR to have draft in the title, but not actually be marked as a draft? :) |
Hah, #justgitlabthings |
|
Also,
This shouldn't be necessary if there are only a couple of intrinsics. Instead, |
458dfab to
6f25a22
Compare
|
Ok, it's ready! I've tested the code on ATmega328P and ATtiny167 (just simavr, since I've recently relocated and my electrical stuff is still in boxes in some warehouse, waiting for final delivery 😭). |
6f25a22 to
83938ba
Compare
|
Sorry about the conflicts, this will need a rebase since I moved some things around (git should be able to figure it out). Just that and #791 (comment), then I think this will be ready to go. |
83938ba to
60d4e8a
Compare
|
Okie, ready; I also added a comment to the |
Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814
Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
Rollup merge of rust-lang#139600 - tgross35:update-builtins, r=tgross35 Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
This pull request gets rid of all of the
#[avr_skip]s introduced in the past.... Olly Murs, frustrated about having to pull someone's intrinsics when working on AVR firmwares (colorized).
Changes here are related to #711, but note that we continue not to provide
__u?divmod[hq]i4- it shouldn't be terribly difficult to implement those (I even have a work-in-progress branch in rustc that exposes the proper calling convention), it's just a different kind of change that will be done in another pull request.In general, the changes boil down to:
#[avr_skip]on intrinsics that don't actually have special convention (such as__addsf3),__unordsf2or__divmodsi4).I've tested new code via avr-tester - in particular, there's a test that uses randomized math operations and another one that checks floating point math, and both pass using the implementations provided by compiler-builtins.
Related discussions: